pipeline {
    agent any
    // 设置全局选项
    options {
        // 构建超时时间设置为 1 小时
        timeout(time: 1, unit: 'HOURS')
        // 保持最近 10 次构建记录
        buildDiscarder(logRotator(numToKeepStr: '10'))
        // 禁用并发构建
        disableConcurrentBuilds()
    }
    stages {
        stage('Input Parameters') {
            steps {
                script {
                    // ✅ 动态询问用户输入（运行时决定，每次都会弹窗）
                    def userInput = input(
                        id: 'userInput', 
                        message: '请选择部署参数', 
                        parameters: [
                            string(name: 'PERSON', defaultValue: 'World', description: '输入你要打招呼的人'),
                            choice(name: 'ENVIRONMENT', choices: ['dev', 'test', 'prod'], description: '选择环境'),
                            booleanParam(name: 'DEPLOY', defaultValue: false, description: '是否部署？'),
                            string(name: 'NEW_PARAM', defaultValue: 'new', description: 'New parameter.')
                        ]
                    )
                    echo "Hello, ${userInput.PERSON}!"
                    echo "Environment: ${userInput.ENVIRONMENT}"
                    echo "Deploy?: ${userInput.DEPLOY}"
                    echo "NEW_PARAM: ${userInput.NEW_PARAM}"
                    // 根据参数做后续处理...
                }
            }
        }

        stage('Deploy') {
            when {
                expression { 
                    // 从 input 返回的参数中判断是否部署
                    return params.DEPLOY == true // 注意：这里可能需要调整，因为 userInput 是局部变量
                }
            }
            steps {
                echo "执行部署操作..."
            }
        }
    }
}